<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="google-site-verification" content="xBT4GhYoi5qRD5tr338pgPM5OWHHIDR6mNg1a3euekI" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="Tom的博客">
    <meta name="keyword"  content="">
    <link rel="shortcut icon" href="/img/favicon.ico">

    <title>
        
        更好的内网穿透选择zeroTier - Tom的博客
        
    </title>

    <!-- Custom CSS -->
    
<link rel="stylesheet" href="/css/aircloud.css">

    
<link rel="stylesheet" href="/css/gitment.css">

    <!--<link rel="stylesheet" href="https://imsun.github.io/gitment/style/default.css">-->
    <link href="//at.alicdn.com/t/font_620856_pl6z7sid89qkt9.css" rel="stylesheet" type="text/css">
    <!-- ga & ba script hoook -->
    <script></script>
<meta name="generator" content="Hexo 5.4.0"></head>

<body>

<div class="site-nav-toggle" id="site-nav-toggle">
    <button>
        <span class="btn-bar"></span>
        <span class="btn-bar"></span>
        <span class="btn-bar"></span>
    </button>
</div>

<div class="index-about">
    <i> 间歇性壮志凌云, 持续性混吃等死 </i>
</div>

<div class="index-container">
    
    <div class="index-left">
        
<div class="nav" id="nav">
    <div class="avatar-name">
        <div class="avatar ">
            <img src="/img/avatar.jpg" />
        </div>
        <div class="name">
            <i>Tom</i>
        </div>
    </div>
    <div class="contents" id="nav-content">
        <ul>
            <li >
                <a href="/">
                    <i class="iconfont icon-shouye1"></i>
                    <span>主页</span>
                </a>
            </li>
            <li >
                <a href="/tags">
                    <i class="iconfont icon-biaoqian1"></i>
                    <span>标签</span>
                </a>
            </li>
            <li >
                <a href="/archives">
                    <i class="iconfont icon-guidang2"></i>
                    <span>存档</span>
                </a>
            </li>
            <li >
                <a href="/about/">
                    <i class="iconfont icon-guanyu2"></i>
                    <span>关于</span>
                </a>
            </li>
            
            <li>
                <a id="search">
                    <i class="iconfont icon-sousuo1"></i>
                    <span>搜索</span>
                </a>
            </li>
            
        </ul>
    </div>
    
        <div id="toc" class="toc-article">
    <ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%AE%89%E8%A3%85"><span class="toc-text">安装</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E4%BD%BF%E7%94%A8"><span class="toc-text">使用</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#%E6%B7%BB%E5%8A%A0moon%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8A%A0%E9%80%9F"><span class="toc-text">添加moon服务器加速</span></a></li></ol>
</div>
    
</div>


<div class="search-field" id="search-field">
    <div class="search-container">
        <div class="search-input">
            <span id="esc-search"> <i class="icon-fanhui iconfont"></i></span>
            <input id="search-input"/>
            <span id="begin-search">搜索</span>
        </div>
        <div class="search-result-container" id="search-result-container">

        </div>
    </div>
</div>

        <div class="index-about-mobile">
            <i> 间歇性壮志凌云, 持续性混吃等死 </i>
        </div>
    </div>
    
    <div class="index-middle">
        <!-- Main Content -->
        


<div class="post-container">
    <div class="post-title">
        更好的内网穿透选择zeroTier
    </div>

    <div class="post-meta">
        <span class="attr">发布于：<span>2020-01-18 13:09:23</span></span>
        
        <span class="attr">标签：/
        
        <a class="tag" href="/tags/#linux nas" title="linux nas">linux nas</a>
        <span>/</span>
        
        
        </span>
        <span class="attr">访问：<span id="busuanzi_value_page_pv"></span>
</span>
</span>
    </div>
    <div class="post-content no-indent">
        <p>现在我们家用的很多服务也需要用到公网IP，但是因为IPv4资源的耗尽，我们普通用户基本上不可能拥有公网IP，所以各种内网穿透服务就产生了。但是比较广为人知的内网穿透方式都是使用服务器进行数据的转发，这种方式耗费资源，而且速度受限于服务器的带宽，远远没有两台设备之间直连来得方便。</p>
<p>最近发现了另一种方式的内网穿透<strong>zeroTier</strong>，可以将我们的设备整到一个虚拟的局域网内，实现设备之间的直连，这样传输的速度就不会受限于服务器的带宽了。我研究了一下，记录下使用方法。</p>
<h2 id="安装"><a href="#安装" class="headerlink" title="安装"></a>安装</h2><p><a target="_blank" rel="noopener" href="https://www.zerotier.com/download/">官网</a>有详细的安装方式，支持Windows，Linux，mac，Android，ios（中国区不支持），还有群晖系统。</p>
<ul>
<li>windows下直接下载安装包安装就好了。</li>
<li>Ubuntu使用以下命令安装</li>
</ul>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl -s https://install.zerotier.com | sudo bash</span><br></pre></td></tr></table></figure>
<p>在你的nas上和电脑上都需要安装好客户端，然后在官网上设置之后就可以将这些设备整到一个虚拟局域网里了，可以互相访问了。</p>
<h2 id="使用"><a href="#使用" class="headerlink" title="使用"></a>使用</h2><ul>
<li>官网注册账号并登录</li>
<li>登录后点击networks</li>
</ul>
<p><img src="../img/zerotier_login.png" alt=""></p>
<ul>
<li>然后创建一个network，会出现一个network id，复制</li>
</ul>
<p><img src="../img/zerotier_create_network.png" alt=""></p>
<ul>
<li>到客户端加入网络，Windows下右击右下角的图标，选择jion network，粘贴刚刚复制的id，Ubuntu下使用以下命令加入网络</li>
</ul>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo zerotier-cli join &lt;your id&gt;</span><br></pre></td></tr></table></figure>
<ul>
<li>然后在刚刚创建的network右边就会看到有数字变化了，点击进入创建的network，在members标签下找到刚刚加入的两个设备，勾选进行启用，过一会儿就会看到分配的虚拟局域网IP了，我们可以使用这个IP在各个客户端之间通信。</li>
</ul>
<p><img src="../img/zerotier_network_members.png" alt=""></p>
<ul>
<li>我们还可以在settings标签下设置我们希望分配的局域网IP地址的网段</li>
</ul>
<p><img src="../img/zerotier_settings_ipv4.png" alt=""></p>
<p>到此为止，就全部设置完成了，现在就可以在外网访问家中的nas了。</p>
<h2 id="添加moon服务器加速"><a href="#添加moon服务器加速" class="headerlink" title="添加moon服务器加速"></a>添加moon服务器加速</h2><p>因为主服务器是公用的，而且在国外，所以在使用高峰期可能连接不上，但是如果我们在国内有一台拥有公网IP的服务器的话，那么就可以使用它进行加速了。</p>
<p>首先我们要根据以上的步骤使我们的终端都连接起来，我们还是要借助主服务器，并不能彻底摆脱它。然后就可以开始设置moon服务器了。</p>
<ul>
<li>首先在moon服务器上安装zeroTier客户端，安装方法和上面的安装方法一样</li>
<li>接下来生成moon.json文件</li>
</ul>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">cd /var/lib/zerotier-one</span><br><span class="line">sudo zerotier-idtool initmoon identity.public &gt; moon.json</span><br></pre></td></tr></table></figure>
<ul>
<li>更改moon.json的配置，主要更改以下一行</li>
</ul>
<figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="string">&quot;stableEndpoints&quot;</span>: [<span class="string">&quot;1.1.1.1/9993&quot;</span>] # <span class="number">1.1</span><span class="number">.1</span><span class="number">.1</span>是你的服务器公网IP，<span class="number">9993</span>是默认端口</span><br></pre></td></tr></table></figure>
<ul>
<li>生成moon配置文件</li>
</ul>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo zerotier-idtool genmoon moon.json</span><br></pre></td></tr></table></figure>
<ul>
<li>手动新建一个moons.d文件夹，将生成的.moon文件移动进去</li>
</ul>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">sudo mkdir moons.d</span><br><span class="line">sudo mv 0000*****.moon moons.d</span><br></pre></td></tr></table></figure>
<ul>
<li>重启moon服务器</li>
</ul>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo service zerotier-one restart</span><br></pre></td></tr></table></figure>
<ul>
<li>然后就可以开始配置客户端了，linux客户端直接将服务器端生成的0000××××.moon文件复制到/var/lib/zerotier-one/moons.d文件夹里，然后重启服务。Windows客户端将服务器端生成的moon文件复制到c:\ProgramData\ZeroTier\One\moons.d,并且在服务中找到zerotier one重启服务。</li>
<li>测试是否成功，终端执行以下命令</li>
</ul>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">sudo zerotier-cli listpeers</span><br></pre></td></tr></table></figure>
<p>输出中有moon服务器就成功了。</p>
<p><img src="../img/zerotier_cmd_listpeers.png" alt=""></p>

        
            <div class="donate-container">
    <div class="donate-button">
        <button id="donate-button">赞赏</button>
    </div>
    <div class="donate-img-container hide" id="donate-img-container">
        <img id="donate-img" src="" data-src="/img/donate.jpg">
        <p> 感谢鼓励 </p>
    </div>
</div>
        
        <br />
        <div id="comment-container">
        </div>
        <div id="disqus_thread"></div>

        <div id="lv-container">
        </div>

    </div>
</div>

    </div>
</div>


<footer class="footer">
    <ul class="list-inline text-center">
        
        

        

        

        

        

    </ul>
    
    <p>
        <span id="busuanzi_container_site_pv">
            <span id="busuanzi_value_site_pv"></span>PV
        </span>
        <span id="busuanzi_container_site_uv">
            <span id="busuanzi_value_site_uv"></span>UV
        </span>
        Created By <a target="_blank" rel="noopener" href="https://hexo.io/">Hexo</a>  Theme <a target="_blank" rel="noopener" href="https://github.com/aircloud/hexo-theme-aircloud">AirCloud</a></p>
</footer>




<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
        tex2jax: {
            inlineMath: [ ["$","$"], ["\\(","\\)"] ],
            skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code'],
            processEscapes: true
        }
    });
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax();
        for (var i = 0; i < all.length; ++i)
            all[i].SourceElement().parentNode.className += ' has-jax';
    });
</script>
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
</body>

<script>
    // We expose some of the variables needed by the front end
    window.hexo_search_path = "search.json"
    window.hexo_root = "/"
    window.isPost = true
</script>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>

<script src="/js/index.js"></script>

<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>




</html>
